Entre no Visualização de Programa em Nível de Máquina, onde a complexidade do hardware é abstraída em um Espaço de Endereçamento Virtual. Nesta visão, a memória não é uma coleção de variáveis, mas um grande array contíguo de blocos de 8 bits chamados bytes. Para uma máquina com tamanho de palavra de $w$ bits, esses endereços variam de $0$ a $2^w - 1$, definindo os limites da capacidade do programa.
1. O Poder do 16
Binário é a linguagem dos circuitos, mas Notação Hexadecimal é a linguagem dos programadores. Como $16 = 2^4$, um único dígito hexadecimal (0–F) mapeia perfeitamente para um nibble de 4 bits. Isso permite que um valor de 1 byte seja expresso de forma compacta por exatamente dois dígitos (por exemplo, 0xFF). Essa abreviação é essencial para ler código de máquina e código assembly, como a instrução 4004dc: 48 03 47 28.
2. Precisão e Aritmética
Enquanto manipulamos Tipos de Dados Inteiros, encontramos anéis booleanos e complemento de dois lógica. Devemos lidar com armazenamento little endian armazenamento, estouro de inteiro, e os detalhes de precisão simples ponto flutuante onde Infinito ($+\infty$) e NaN residem. Compreender esses padrões de bits é o primeiro passo para dominar aritmética de tamanho arbitrário e programação de sistemas robusta.